const { body, query } = require("express-validator")
const validate = require("../middleware/validate")
const { UserModel } = require("../model")
exports.register = validate([
  // 1. 配置验证规则
  body("name")
    .notEmpty().withMessage("用户名不能为空")
    .custom(async (value) => {
      // 查询数据库查看数据是否存在
      const user = await UserModel.findOne({ name: value })
      if (user) {
        return Promise.reject("用户已存在")
      }
    }),

  body("password").notEmpty().withMessage("密码不能为空"),

  body("email")
    .notEmpty().withMessage("邮箱不能为空")
    .isEmail().withMessage("邮箱格式不正确")
    .bail() // 如果错误就不向下执行
    .custom(async (value) => {
      // 查询数据库查看数据是否存在
      const user = await UserModel.findOne({ email: value })
      if (user) {
        return Promise.reject("邮箱已存在")
      }
    }),
])
